package br.com.foxinline.manager.criar.ep;

import br.com.foxinline.modelo.ep.AtoTipoEP;
import br.com.foxinline.modelo.ep.Qualidade;
import br.com.foxinline.servico.ep.AtoTipoEPServico;
import br.com.foxinline.servico.ep.QualidadeServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerCriarQualidade implements Serializable {

    @EJB
    AtoTipoEPServico atoTipoEPServico;
    @EJB
    QualidadeServico qualidadeServico;
    
    private Qualidade qualidade;
    
    private String editarId;    
    
    @PostConstruct
    public void init() {
        instanciar();
        delegar();
    }

    private void instanciar() {
        this.qualidade = new Qualidade();
    }

    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.editarId = parametros.get("qualidadeId");        
        
        if (editarId != null) {
            this.qualidade = qualidadeServico.pesquisar(Long.parseLong(editarId));
        }
    }

    public void salvar() {
        String mensagem;
        
        if (this.qualidade.getId() == null) {
            qualidadeServico.salvar(this.qualidade);
            mensagem = "Qualidade cadastrado com sucesso!";
            instanciar();
        } else {
            qualidadeServico.atualizar(this.qualidade);
            mensagem = "Qualidade atualizado com sucesso!";
        }
        
        Mensagem.messagemInfo(mensagem);
    }    
    
    public List<AtoTipoEP> autocompletarAtoTipoEP(String query) {
        return atoTipoEPServico.autocompletar(query);
    }

    public Qualidade getQualidade() {
        return qualidade;
    }

    public void setQualidade(Qualidade qualidade) {
        this.qualidade = qualidade;
    }

}
